// 对于axios进行二次封装
import axios from 'axios'

//引入进度条 及 样式
import nProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 1:利用axios对象的方法 create,创建一个axios实例
const requests = axios.create({
  // 配置对象
  // 基础路径
  baseURL: '/mock',
  // 请求时间超时为5s
  timeout: 5000
})

// 请求拦截器
requests.interceptors.request.use((config) => {
  // config:配置对象（包含一个很重要的属性-----headers）

  //进度条开始
  nProgress.start()
  return config
})

// 响应拦截器
requests.interceptors.response.use(
  (res) => {
    //进度条结束
    nProgress.done()
    return res.data
  },
  (error) => {
    //响应失败的回调函数
    return Promise.reject(new Error('fail'))
  }
)

export default requests
